﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ОснованияДляПредставленияСправок2НДФЛ
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"0de948f6-6182-430a-af0e-25901f898b5d\", \"Представление\":\"ЕжегоднаяОтчетность\"}")]
		ЕжегоднаяОтчетность = 0,//Ежегодная отчетность
		[EnumMember(Value = "{\"Ссылка\":\"4d378b02-2e0c-450b-bd57-6881d1d8c84d\", \"Представление\":\"ОНевозможностиУдержанияНДФЛ\"}")]
		ОНевозможностиУдержанияНДФЛ = 1,//О невозможности удержания НДФЛ
	}
	public static partial class ОснованияДляПредставленияСправок2НДФЛ_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ЕжегоднаяОтчетность = new Guid("90250eaf-891f-5d8b-430a-61820de948f6");//Ежегодная отчетность
		public static readonly Guid ОНевозможностиУдержанияНДФЛ = new Guid("816857bd-d8d1-4dc8-450b-2e0c4d378b02");//О невозможности удержания НДФЛ
		public static ОснованияДляПредставленияСправок2НДФЛ Получить(this ОснованияДляПредставленияСправок2НДФЛ Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ОснованияДляПредставленияСправок2НДФЛ Получить(this ОснованияДляПредставленияСправок2НДФЛ Значение, Guid Ссылка)
		{
			if(Ссылка == ЕжегоднаяОтчетность)
			{
				return ОснованияДляПредставленияСправок2НДФЛ.ЕжегоднаяОтчетность;
			}
			else if(Ссылка == ОНевозможностиУдержанияНДФЛ)
			{
				return ОснованияДляПредставленияСправок2НДФЛ.ОНевозможностиУдержанияНДФЛ;
			}
			return ОснованияДляПредставленияСправок2НДФЛ.ПустаяСсылка;
		}
		public static byte[] Ключ(this ОснованияДляПредставленияСправок2НДФЛ Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ОснованияДляПредставленияСправок2НДФЛ Значение)
		{
			switch (Значение)
			{
				case ОснованияДляПредставленияСправок2НДФЛ.ЕжегоднаяОтчетность: return ЕжегоднаяОтчетность;
				case ОснованияДляПредставленияСправок2НДФЛ.ОНевозможностиУдержанияНДФЛ: return ОНевозможностиУдержанияНДФЛ;
			}
			return Guid.Empty;
		}
	}
}